home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / newsgroups / misc.19981211-19990422 / 000401_news@watsun.cc.columbia.edu _Tue Mar 23 10:16:15 1999.msg < prev    next >
Internet Message Format  |  2020-01-01  |  3KB

  1. Return-Path: <news@watsun.cc.columbia.edu>
  2. Received: from newsmaster.cc.columbia.edu (newsmaster.cc.columbia.edu [128.59.59.30])
  3.     by watsun.cc.columbia.edu (8.8.5/8.8.5) with ESMTP id KAA28085
  4.     for <kermit.misc@watsun.cc.columbia.edu>; Tue, 23 Mar 1999 10:16:14 -0500 (EST)
  5. Received: (from news@localhost)
  6.     by newsmaster.cc.columbia.edu (8.8.5/8.8.5) id KAA14437
  7.     for kermit.misc@watsun.cc.columbia.edu; Tue, 23 Mar 1999 10:00:22 -0500 (EST)
  8. X-Authentication-Warning: newsmaster.cc.columbia.edu: news set sender to <news> using -f
  9. From: dn5006@my-dejanews.com
  10. Subject: Object-Oriented Programming in Kermit 95
  11. Date: Tue, 23 Mar 1999 14:45:09 GMT
  12. Organization: Deja News - The Leader in Internet Discussion
  13. Message-ID: <7d89dj$tq3$1@nnrp1.dejanews.com>
  14. To: kermit.misc@watsun.cc.columbia.edu
  15.  
  16. ; OBJECT-ORIENTED PROGRAMMING IS VERY EFFECTIVE IN DESIGNING
  17. ; AND MAINTAINING SOFTWARE.
  18. ; KERMIT 95 PROVIDES MECHANISMS TO IMPLEMENT ELEGANTLY SOME
  19. ; OBJECT-ORIENTED FEATURES.
  20. ; THE FOLLOWING SCRIPT DEFINES A CLASS PERSON WITH TWO DATA
  21. ; ATTRIBUTES age, job AND TWO METHODS introduce, destroy.
  22. ; ALL DATA ATTRIBUTES AND METHODS ARE PUBLIC.
  23.  
  24. define person {
  25.     _assign \%1.age \%2
  26.     _assign \%1.job \%3
  27.     _assign \%1.introduce {
  28.         echo My name is \%1
  29.         echo I am \\m(\%1.age) years old
  30.         echo I am a \\m(\%1.job)
  31.        }
  32.     _assign \%1.destroy {
  33.         _define \%1.age
  34.         _define \%1.job
  35.         _define \%1.introduce
  36.     }
  37. }
  38.  
  39. ;     RECENTLY I MET MARK, A 36 YEARS OLD TRUCK DRIVER
  40.     person mark 36 {truck driver}
  41.  
  42. ;     HE INTRODUCES HIMSELF
  43.     mark.introduce
  44.  
  45. ;    HE IS WITH HIS GIRL FRIEND, JANE, A 28 YEARS YOUNG SECRETARY
  46.     person jane 28 secretary
  47.  
  48. ;    SHE ALSO INTRODUCES HERSELF
  49.     jane.introduce
  50.  
  51. ;    THEY ARE OFF ON VACATION, I ERASE THEM FROM MY MEMORY
  52.     mark.destroy
  53.     jane.destroy
  54.  
  55.  
  56. ; FOLLOWING IS THE CLASS ANIMAL
  57.  
  58. define animal {
  59.     _assign \%1.sound \%2
  60.     _assign \%1.introduce {
  61.         echo I am a \%1 ... \\m(\%1.sound)
  62.        }
  63.     _assign \%1.destroy {
  64.         _define \%1.sound
  65.         _define \%1.introduce
  66.     }
  67. }
  68.  
  69. ;    IN FRONT OF NY HOUSE, THERE ARE A DOG
  70.     animal dog wow
  71.  
  72. ;    AND A CAT
  73.     animal cat miaou
  74.  
  75. ;     THE DOG TRIES TO BE FRIENDLY
  76.     dog.introduce
  77.  
  78. ;    THE CAT REPLIES
  79.     cat.introduce
  80.  
  81. ;    I CLOSE THE WINDOW AND FORGET ABOUT THEM
  82.     dog.destroy
  83.     cat.destroy
  84.  
  85. ; Different objects react differently to the same message, it's polymorphism!
  86. ; If you want to modify the behavior of all the objects in the same class,
  87. ; do it in the class definition, no need to browse through the code to update
  88. ; them. That's efficiency.
  89.  
  90.  
  91. Dat Nguyen
  92. Airline Telecommunications and Information Services
  93. 770 Sherbrooke West
  94. Montreal, Quebec
  95. Canada H3A 1G1
  96. Email dat.nguyen&sita.int
  97.  
  98. -----------== Posted via Deja News, The Discussion Network ==----------
  99. http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own